package com.linq.cool.beauty.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.linq.cool.beauty.domain.BeautyEsProduct;
import com.linq.cool.beauty.domain.BeautyProduct;
import com.linq.cool.beauty.dto.BeautyProductDTO;
import com.linq.cool.beauty.dto.BeautyProductQueryDTO;
import com.linq.cool.beauty.dto.BeautyProductSearchDTO;
import com.linq.cool.beauty.vo.BeautyProductVO;
import com.linq.cool.common.core.domain.PageVO;

import java.util.List;

/**
 * @Author: yqlin
 * @Date: 2021/2/5 17:25
 * @Description:
 * @Version: 1.0.0
 */
public interface BeautyProductService extends IService<BeautyProduct> {

    /**
     * 条件分页查询商品信息
     *
     * @param page 分页插件
     * @param dto  条件
     *
     * @return 结果
     */
    IPage<BeautyProduct> listByPage(IPage<BeautyProduct> page, BeautyProductQueryDTO dto);

    /**
     * 保存商品
     *
     * @param dto
     *
     * @return
     */
    boolean saveProduct(BeautyProductDTO dto);

    /**
     * 修改商品
     *
     * @param dto
     *
     * @return
     */
    boolean updateProduct(BeautyProductDTO dto);

    /**
     * 根据id查询信息
     *
     * @param productId
     *
     * @return
     */
    BeautyProductVO getProductById(Long productId);

    /**
     * 获取新品
     *
     * @return
     */
    List<BeautyProduct> listByNewStatus();

    /**
     * 获取推荐商品
     *
     * @return
     */
    List<BeautyProduct> listByRecommendStatus();

    /**
     * 查询所在类目销量最高的6条数据
     *
     * @param productId
     *
     * @return
     */
    List<BeautyProduct> listBySale(Long productId);

    /**
     * 商品搜索
     *
     * @param dto
     *
     * @return
     */
    PageVO search(BeautyProductSearchDTO dto);
}
